# $Id: PKGBUILD 180680 2013-03-25 19:15:31Z bpiotrowski $
# Maintainer: Jan de Groot <jgc@archlinux.org>

# This package spans multiple repositories. 
# Always build from cyrus-sasl/trunk and merge changes to libsasl/trunk.

pkgbase=('cyrus-sasl')
pkgname=('cyrus-sasl' 'cyrus-sasl-gssapi' 'cyrus-sasl-ldap' 'cyrus-sasl-sql')
#pkgname=libsasl
pkgver=2.1.23
pkgrel=12
pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
arch=('i686' 'x86_64')
url="http://cyrusimap.web.cmu.edu/"
license=('custom')
options=('!makeflags' '!libtool')
makedepends=('postgresql-libs' 'libmariadbclient' 'libldap' 'krb5' 'openssl')
source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
        cyrus-sasl-2.1.19-checkpw.c.patch
        cyrus-sasl-2.1.22-crypt.patch
        cyrus-sasl-2.1.22-qa.patch
        cyrus-sasl-2.1.22-automake-1.10.patch
        cyrus-sasl-2.1.23-authd-fix.patch
        0003_saslauthd_mdoc.patch
        0010_maintainer_mode.patch
        0011_saslauthd_ac_prog_libtool.patch
        0012_xopen_crypt_prototype.patch
        0016_pid_file_lock_creation_mask.patch
        0018_auth_rimap_quotes.patch
        0019_ldap_deprecated.patch
        0022_gcc4.4_preprocessor_syntax.patch
        0025_ld_as_needed.patch
        0026_drop_krb5support_dependency.patch
        0027_db5_support.patch
        0030-dont_use_la_files_for_opening_plugins.patch
        saslauthd.service
        saslauthd.conf.d
        saslauthd
        tmpfiles.conf)
md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
         'e27ddff076342e7a3041c4759817d04b'
         'd7e6886e88af04d05f3dec7f0a59ccf7'
         '79b8a5e8689989e2afd4b7bda595a7b1'
         'f4131b077ddb5240b375d749162f1b7a'
         'c7ad2c70c1ef814eb4b119f316c064f2'
         'caeeac3feba19cbbd36e7345cc805600'
         'f45d8b60e8f74dd7f7c2ec1665fa602a'
         '9d93880514cb5ff5da969f1ceb64a661'
         'dfdc052a7e678db9f687482c5d52f34e'
         '4a09f6b24b91f8450892a78e378860da'
         '213abe7c5dfe0d7f446992787da1e780'
         '5a0321177ad30cb5518c8b6812e3961a'
         '0c965748970eea29fa295524821d43f0'
         '62bf892fe4d1df41ff748e91a1afaf67'
         'b7848957357e7c02d6490102be496bf9'
         'd86a5aa2e3b5b7c1bad6f8b548b7ea36'
         '8e7106f32e495e9ade69014fd1b3352a'
         '3499dcd610ad1ad58e0faffde2aa7a23'
         '49219af5641150edec288a3fdb65e7c1'
         '75542f613185d5a90520ad0d7d926a20'
         '45bb0192d2f188066240b9a66ee6365f')

build() {
  cd "${srcdir}/cyrus-sasl-${pkgver}"
  patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch"
  patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-crypt.patch"
  patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-qa.patch"
  patch -Np1 -i "${srcdir}/cyrus-sasl-2.1.22-automake-1.10.patch"
  patch -Np0 -i "${srcdir}/cyrus-sasl-2.1.23-authd-fix.patch"
  patch -Np1 -i "${srcdir}/0003_saslauthd_mdoc.patch"
  patch -Np1 -i "${srcdir}/0010_maintainer_mode.patch"
  patch -Np1 -i "${srcdir}/0011_saslauthd_ac_prog_libtool.patch"
  patch -Np1 -i "${srcdir}/0012_xopen_crypt_prototype.patch"
  patch -Np1 -i "${srcdir}/0016_pid_file_lock_creation_mask.patch"
  patch -Np1 -i "${srcdir}/0018_auth_rimap_quotes.patch"
  patch -Np1 -i "${srcdir}/0019_ldap_deprecated.patch"
  patch -Np1 -i "${srcdir}/0022_gcc4.4_preprocessor_syntax.patch"
  patch -Np1 -i "${srcdir}/0025_ld_as_needed.patch"
  patch -Np1 -i "${srcdir}/0026_drop_krb5support_dependency.patch"
  patch -Np1 -i "${srcdir}/0027_db5_support.patch"
  patch -Np1 -i "${srcdir}/0030-dont_use_la_files_for_opening_plugins.patch"

  rm -f config/config.guess config/config.sub 
  rm -f config/ltconfig config/ltmain.sh config/libtool.m4
  rm -fr autom4te.cache
  libtoolize -c
  aclocal -I config -I cmulocal
  automake -a -c
  autoheader
  autoconf

  pushd saslauthd
  rm -f config/config.guess config/config.sub 
  rm -f config/ltconfig config/ltmain.sh config/libtool.m4
  rm -fr autom4te.cache
  libtoolize -c
  aclocal -I config -I ../cmulocal -I ../config
  automake -a -c
  autoheader
  autoconf
  popd

  ./configure --prefix=/usr \
      --mandir=/usr/share/man \
      --infodir=/usr/share/info \
      --disable-static \
      --enable-shared \
      --enable-alwaystrue \
      --enable-checkapop \
      --enable-cram \
      --enable-digest \
      --disable-otp \
      --disable-srp \
      --disable-srp-setpass \
      --disable-krb4 \
      --enable-gssapi \
      --enable-auth-sasldb \
      --enable-plain \
      --enable-anon \
      --enable-login \
      --enable-ntlm \
      --disable-passdss \
      --enable-sql \
      --enable-ldapdb \
      --disable-macos-framework \
      --with-pam \
      --with-saslauthd=/var/run/saslauthd \
      --with-ldap \
      --with-configdir=/etc/sasl2:/etc/sasl:/usr/lib/sasl2 \
      --sysconfdir=/etc \
      --with-devrandom=/dev/urandom
  make
}

package_libsasl() {
  pkgdesc="Cyrus Simple Authentication Service Layer (SASL) Library"
  depends=('openssl')
  conflicts=('cyrus-sasl-plugins')

  cd "${srcdir}/cyrus-sasl-${pkgver}"
  for dir in include lib sasldb plugins utils; do
    pushd ${dir}
    make DESTDIR="${pkgdir}" install
    popd
  done
  rm -f "${pkgdir}"/usr/lib/sasl2/libsql.so*
  rm -f "${pkgdir}"/usr/lib/sasl2/libgssapiv2.so*
  rm -f "${pkgdir}"/usr/lib/sasl2/libldapdb.so*
  install -m755 -d "${pkgdir}/usr/share/licenses/libsasl"
  install -m644 COPYING "${pkgdir}/usr/share/licenses/libsasl/"
}

package_cyrus-sasl() {
  depends=("libsasl=${pkgver}" 'krb5')
  pkgdesc="Cyrus saslauthd SASL authentication daemon"
  backup=('etc/conf.d/saslauthd')

  cd "${srcdir}/cyrus-sasl-${pkgver}/saslauthd"
  make DESTDIR="${pkgdir}" install
  install -Dm755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/saslauthd"
  install -Dm644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
  install -Dm644 "${srcdir}/saslauthd.service" "${pkgdir}/usr/lib/systemd/system/saslauthd.service"
  install -Dm644 "${srcdir}/tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/saslauthd.conf"

  install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl"
  ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/"
}

package_cyrus-sasl-gssapi() {
  pkgdesc="GSSAPI authentication mechanism for Cyrus SASL"
  depends=("libsasl=${pkgver}" 'krb5')
  replaces=('cyrus-sasl-plugins')

  cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
  install -m755 -d "${pkgdir}/usr/lib/sasl2"
  cp -a .libs/libgssapiv2.so* "${pkgdir}/usr/lib/sasl2/"

  install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi"
  ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-gssapi/"
}

package_cyrus-sasl-ldap() {
  pkgdesc="ldapdb auxprop module for Cyrus SASL"
  depends=("libsasl=${pkgver}" 'libldap')
  replaces=('cyrus-sasl-plugins')

  cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
  install -m755 -d "${pkgdir}/usr/lib/sasl2"
  cp -a .libs/libldapdb.so* "${pkgdir}/usr/lib/sasl2/"

  install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap"
  ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-ldap/"
}

package_cyrus-sasl-sql() {
  pkgdesc="SQL auxprop module for Cyrus SASL"
  depends=("libsasl=${pkgver}" 'postgresql-libs' 'libmariadbclient')
  replaces=('cyrus-sasl-plugins')

  cd "${srcdir}/cyrus-sasl-${pkgver}/plugins"
  install -m755 -d "${pkgdir}/usr/lib/sasl2"
  cp -a .libs/libsql.so* "${pkgdir}/usr/lib/sasl2/"

  install -m755 -d "${pkgdir}/usr/share/licenses/cyrus-sasl-sql"
  ln -sf ../libsasl/COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl-sql/"
}
